using System.ComponentModel;
using System.Runtime.Serialization;

namespace Source.Common.Data
{

    [DataContract]
    public enum RsmTypes
    {
        [EnumMember]
        FieldTrial = 1,
        [EnumMember]
        FreeOfCharge = 2,
        [EnumMember]
        LentOrders = 3,
        [EnumMember]
        Retrofit = 4,
        [EnumMember]
        Communication = 5,
        [EnumMember]
        Other = 6
    }
 
    [DataContract]
    public enum SubCategories
    {
        [EnumMember]
        Ola = 1,
        [EnumMember]
        OlaPlus = 2,
        [EnumMember]
        Oxia = 3,
        [EnumMember]
        Rsm = 4
    }

    [DataContract]
    public enum OrderStatuses
    {
        [EnumMember]
        InDraft = 1,
        [EnumMember]
        InValidation = 2,
        [EnumMember]
        Approved = 3,
        [EnumMember]
        Rejected = 4,
        [EnumMember]
        Cancelled = 5,
        [EnumMember]
        CloseRejected = 6,
    }

    [DataContract]
    public enum ApprovalStatuses
    {
        [EnumMember]
        Pending = 1,
        [EnumMember]
        Approved = 2,
        [EnumMember]
        Rejected = 3,
        [EnumMember]
        WaitForInformation = 4,
        [EnumMember]
        ChangeRequested = 5,
        [EnumMember]
        BlankStatus = 6
        //TODO XIJUN: The status BlankStatus should be named Blank which is following the same structure as the other statuses.
    }

    [DataContract]
    public enum ItemStatuses
    {
        [EnumMember]
        BlankStatus = 1,
        [EnumMember]
        Pending = 2,
        [EnumMember]
        Approved = 3,
        [EnumMember]
        Rejected = 4
    }

    [DataContract]
    public enum DocumentTypes
    {
        [EnumMember]
        Ipis = 1,
        [EnumMember]
        Boq = 2,
        [EnumMember]
        Loi = 3,
        [EnumMember]
        OtherTypes = 4,
    }

    [DataContract]
    public enum DocumentTypeLibrary
    {
        [EnumMember]
        Ipis = 1,
        [EnumMember]
        Boq = 2,
        [EnumMember]
        Loi = 3,
        [EnumMember]
        OtherTypes = 4,
    }


    [DataContract]
    public enum ResultSortDirection
    {
        [EnumMember]
        Ascending,
        [EnumMember]
        Descending
    }

    [DataContract]
    public enum LevelType
    {
        [EnumMember]
        ALevel = 1,
        [EnumMember]
        BLevel = 2,
    }

    [DataContract]
    public enum Level
    {
        [EnumMember]
        A1 = 1,
        [EnumMember]
        A2 = 2,
        [EnumMember]
        A3 = 3,
        [EnumMember]
        A4 = 4,
        [EnumMember]
        B1 = 5,
        [EnumMember]
        B2 = 6,
        [EnumMember]
        B3 = 7,
        [EnumMember]
        B4 = 8,        
    }

    [DataContract]
    public enum OrganizationRelationUsageType
    {
        [EnumMember]
        OrderOrItem = 1,
        [EnumMember]
        Participant = 2,
    }
}